package com.entity;

/**
 * 自定义异常类
 * 该类用于定义应用程序中的自定义异常，继承自 `RuntimeException`，
 * 可以提供自定义的错误信息和错误代码，便于处理不同类型的错误。
 *
 * @author team10
 *
 */
public class EIException extends RuntimeException {
	private static final long serialVersionUID = 1L;

	/**
	 * 异常消息
	 * 用于存储异常的描述信息
	 */
	private String msg;

	/**
	 * 异常代码
	 * 默认为 500，表示服务器错误
	 */
	private int code = 500;

	/**
	 * 构造函数，传入异常消息
	 * @param msg 异常信息
	 */
	public EIException(String msg) {
		super(msg);  // 调用父类构造函数
		this.msg = msg;
	}

	/**
	 * 构造函数，传入异常消息和导致异常的原因
	 * @param msg 异常信息
	 * @param e 原因异常
	 */
	public EIException(String msg, Throwable e) {
		super(msg, e);  // 调用父类构造函数
		this.msg = msg;
	}

	/**
	 * 构造函数，传入异常消息和错误代码
	 * @param msg 异常信息
	 * @param code 错误代码
	 */
	public EIException(String msg, int code) {
		super(msg);  // 调用父类构造函数
		this.msg = msg;
		this.code = code;
	}

	/**
	 * 构造函数，传入异常消息、错误代码和导致异常的原因
	 * @param msg 异常信息
	 * @param code 错误代码
	 * @param e 原因异常
	 */
	public EIException(String msg, int code, Throwable e) {
		super(msg, e);  // 调用父类构造函数
		this.msg = msg;
		this.code = code;
	}

	/**
	 * 获取异常信息
	 * @return 异常消息
	 */
	public String getMsg() {
		return msg;
	}

	/**
	 * 设置异常信息
	 * @param msg 异常消息
	 */
	public void setMsg(String msg) {
		this.msg = msg;
	}

	/**
	 * 获取异常代码
	 * @return 错误代码
	 */
	public int getCode() {
		return code;
	}

	/**
	 * 设置异常代码
	 * @param code 错误代码
	 */
	public void setCode(int code) {
		this.code = code;
	}
}
